The invention relates to generating color text.
As shown in FIG. 1, to display a text character (e.g., an "h" 17) on a display 16, a central processing unit (CPU) 25 of a computer system 12 typically generates both monochrome raster data 11 defining the character and an address specifying the location on the display 16 at which the character should appear. A rasterizer 14 uses the raster data 11 and address to store the character in a frame buffer 13. A digital-to-analog converter (DAC) 21 scans the frame buffer 13 to generate analog signals (e.g., RGB 15 signals) on the display 16.
As shown in FIG. 2, the raster data 11 directs the placement of foreground pixels (each pixel having a predetermined foreground color) of the character on the display 16 by defining a bit mask for a corresponding block 23 of pixels. One bit value (e.g., a logical one) sets the color of a corresponding pixel equal to a predetermined foreground color, and another bit value (e.g., a logical zero) leaves the color of the corresponding pixel unchanged (i.e., the background of the character is transparent). The size of the character (i.e., the size of the raster data 11 and the size of the pixel block 23) is a function of a user selected character size, and the particular mask defined by the raster data 11 is a function of a user selected font.
The rasterizer 14 typically has a graphics engine 10 30 (FIG. 1) which stores a color value (a value that represents the color of a pixel) for each foreground pixel in a frame buffer 13 (FIG. 3). The pixel block 23 has an associated region 19 in the frame buffer 13 that contains a color value for each pixel in the block 23.
The color value is typically defined by one or more bytes, and a copy of the color value for the predetermined foreground color is typically stored in a color register of the graphics engine 10. As an example (FIG. 4) of the format of the color value, in a True Color mode (a mode allowing over 16 million possible pixel colors), the color of each pixel is uniquely defined in a red, green and blue (RGB) color space by three bytes 15: one byte (the least significant byte) defines the blue component of the color, one byte (the second most significant byte) defines the green component of the color, and one byte (the most significant byte) defines the red component of the color. The rasterizer 14 typically has a digital-to-analog converter (DAC) 21 to convert the digital color values from the frame buffer 13 into the analog signals furnished to the display 16.
To process True Color text, the graphics engine 10 might be a twenty-four bit engine used to selectively write twenty-four bit color values to the frame buffer 13 depending on the bits of the raster data 11. In other rasterizers for True Color text, the graphics engine might be a thirty-two bit engine used to selectively write thirty-two bit color values (a twenty-four bit color value and eight bits of padding) to the frame buffer 13 for each pixel.
Some rasterizers process True Color text by using an eight bit graphics engine and a software driver specifically written for this graphics engine. In this arrangement, the CPU (under control of the software driver) typically generates three bits of data (one for each eight bit component of the twenty-four bit color value) for every bit of the raster data. The CPU then sends this triplicated raster data to the rasterizer for processing. The graphics engine has a twenty-four bit "rotating" color register storing the color value, and when performing a write operation to the frame buffer, the graphics engine selects one of the components stored in the color register based on a rotating scheme. In this manner, three successive eight bit write operations (e.g., a red component, a green component, and then a blue component) by the graphics engine transfers one twenty-four bit color value to the frame buffer.
A graphics engine that processes True Color Text may write, for example, thirty-two, sixty-four or one hundred twenty-eight bits to the frame buffer on every clock cycle. For these data transfers, the color values for 11/3, 22/3, or 51/3 pixels, respectively, are transferred at one time to the frame buffer.